1. Field of the Invention
This invention relates to device drivers, and more particularly to a format independent system that can be used by computing devices for printing.
2. Background
Portable computing devices including personal digital assistants (“PDAs”), mobile phones and other similar computing devices (“collectively referred to herein as “handheld devices”) are widespread in today's business and personal lives. Most handheld devices generally store important business and/or personal information, e.g., address books, daily planners, memo-pads, calendars, project lists, and/or expense reports etc. A typical handheld device has limited computing power and low memory storage space for storing content.
One who uses a handheld device, generally carries it from place to place. Often, a handheld device user needs to print stored content from the handheld device. Generally, in order to print from a computing device, an application issues a user prompted print command to print content. A printer driver is required to facilitate the transfer of print data from the computing device to a printing device (hereinafter referred to as a “printer” or “printers”).
One technique commonly used by applications (e.g. Microsoft Outlook, Microsoft Corporation®) is called “spooling”. The application from which content is to be printed is spooled as a “spool file” on a storage media. The operating system (OS) spools up all the calls that the application makes to the printer driver and saves the calls in a spool file along with a copy of the print content. Then the spooled file with the print content is read from the storage media and handed to the printer driver. The printer driver takes the spooled file and creates a high level Printer Description Language File (“PDL file”) and stores the PDL file on the storage media. The PDL file is then sent to the printer engine of the printer, and printed.
One example of the foregoing printer driver system is shown in FIG. 1. Based on user input, Application 100 converts the desired print content into graphical device interface (“GDI”) format 101 or other text commands and graphics primitives. The print job may be spooled to a spool file 102, which is stored on a storage media (not shown). These commands may be formatted by printer driver 105 into a recognizable industry defined data definition (e.g. PCL), or to a device specific format, to create print commands 103 to control printer 104. Print commands 103 are sent to printer 104 with print content from spool file 102, which is then printed. Printer 104 may not be physically attached to a computing device where application 100 and printer driver 105 reside, but may be remotely located such as on a LAN network (not shown).
Most computing devices require device specific printer drivers, so that computer applications can interface with printer drivers and print content. Printer drivers in general require large memory space for storage. This becomes a problem for handheld devices because such devices have limited memory storage space. Also, since most printers require a specific printer driver, printing from a handheld device becomes very difficult because the handheld device may not be able to store multiple printer drivers.
Therefore, there is a need for a system that allows a handheld device to print data at any printer using a standard device independent format.